【计算机三级数据库技术】三级数据库技术应用题集锦

第1套 考试题库试题

  1. 数据库管理系统提供了数据定义语言(DDL),用于定义各种数据库对象。数据定义语句经DDL编译器编译后,各种对象的描述信息存放在数据库的【数据字典】中。

  2. 关系数据库中要求关系的主码不能为空,这属于数据模型三要素中的【完整性约束】。

  3. 设有如下UML图。该图是一种【顺序】图。(图形暂未给出)

  4. 现有系表(系号,系名,联系电话)和教师表(教师号,教师名,职称,工资,系号)。目前某些系还没有招聘到教授,如果要用一个查询语句列出没有招聘到教授的系的系号和系名,用【】连接操作可以实现这个查询。

  5. 设有商品表(商品号,商品名,商品类别),其中商品号为主码,商品名和商品类别不为空。现要统计商品数量最多的前3类商品(包括并列情况),希望列出商品类别和商品数量。请补全下列语句:
    SELECT 【TOP3 WITH TIES】 商品类别,COUNT(*)AS 商品数量
    FROM 商品表
    GROUP BY 商品类别
    ORDER BY COUNT(*) DESC

  6. 在SQL Server 2008中,每个数据页可储存8060字节的数据。设表T有10000行数据,每行占用4031字节,则存储该表数据大约需要【80】MB存储空间,其空间利用率大约是【50】%。(存储空间和空间利用率均保留到整数,小数点后按四舍五入处理)

  7. 使用约束可以保证数据库中数据的正确性,其中【UNIQUE】约束允许出现空值但不允许出现重复值。

  8. 在SQL Server 2008中,设log1是SQL Server身份验证模式的数据库服务器登录账户现要授予log1具有创建数据库的权限,请补全下列语句:
    EXEC sp_addsrvrolemember ‘log1’,’【dbcreateor】’

  9. 数据库管理系统一般通过周期性检查【事务等待】图来实现死锁检测。

  10. 一个事务执行过程中,其正在访问的数据被其他事务修改,导致处理结果不正确。这是由于不满足并发事务间的【隔离】性而引起的。

  11. 在数据库系统出现系统故障后进行恢复时,对于事务T,如果在日志文件中有BEGINTRANSACTION记录,也有COMMIT记录,但其对数据的修改没有写到数据库中,则数据库管理系统处理这种事务时应执行的操作是【REDO】。

  12. 设某并行数据库采用一台具有14个刀片的刀片服务器,每个刀片具有独立的内存和磁盘,各刀片之间通过刀片服务器上的以太网交换机实现通信,则该并行数据库采用的体系结构是【无共享】结构。

  13. 数据仓库是一个面向【主题】的、集成的、非易失的、且随时间变化的数据集合。

  14. 粒度是反映数据库系统中综合程度的指标。设有表T1(商品标识,销售时间,销售量)、T2(商品标识,日期,总销售量)和T3(商品类别,月份,总销售量),其中粒度最大的表是【T3】。

第2套 考试题库试题

  1. 数据库管理系统为三级模式结构提供了两层映像机制,其中模式/内模式映像提供了【物理】独立性。

  2. 按照数据库应用系统生命周期模型,系统设计阶段细分为概念设计、【逻辑】设计和物理设计三个步骤。

  3. 设用UML设计某数据库应用系统,设计人员规划了一组应用程序集,该集合由动态链接库和可执行程序构成。为了展现这些应用程序集之间的组织和依赖关系,以对源代码、可执行程序的发布等进行系统建模,应采用的UML图是【组件】图。

  4. 设有学生表(学号,姓名,所在系名)和选课表(学号,课程号,成绩)。现要建立统计每个系选课人数的视图。请补全下列语句:
    CREATE VIEW V1(系名,人数) AS
    SELECT 所在系名,【COUNT(DISTINCT 选课表.学号)
    FROM 选课表 JOIN 学生表 ON 选课表.学号 = 学生表.学号
    GROUP BY 所在系名

  5. 设有课程表(课程号,课程名,学分,先修课程号),已知某应用程序需要列出“数据库原理”课程的一门先修课程,查询结果要求输出(课程名,学分,先修课程名,先修课学分),可以用【】连接操作在一个查询中实现此功能。

  6. 在SQL Server 2008的某用户数据库中,设有T表,现要在T表的c1列和c2列上建立一个复合唯一聚集索引,其中c1列值重复率为20%,c2列为10%。请补全下列语句建立一个性能最优的索引:
    CREATE UNIQUE CLUSTERED INDEX Idx1 ON T(【c2,c1】)

  7. 在SQL Server 2008中,现要讲T1表的C1列(int类型)定义为标识列,初值和增量值均为1。请补全下列语句:
    CREATE TABLE T1 (C1 int【identity】(1,1),…)

  8. 在SQL Server 2008中,设U1是SQL Server身份验证模式的数据库服务器登录账户,现希望U1在该数据库服务器上具有系统管理员权限。请补全下列语句:
    EXEC sp_addsrvrolemember ‘U1’,’【sysadmin】’

  9. 数据库管理系统中的加锁协议规定了事务的加锁时间、持续时间和释放锁时间,其中【三级加锁】协议可以完全保证并发事务数据的一致性。

  10. 在数据库系统出现系统故障后进行恢复时,对于事务T,如果日志文件中有BEGIN TRANSACTION记录,而没有COMMIT或ROLLBACK记录,则数据库管理系统处理这种事务时应执行的操作是【UNDO】。

  11. 在动态转储中,利用转储文件只能将数据库恢复到转储过程中的某个状态,且转储文件中的数据可能不一致,只有和【日志】文件综合起来使用,才能将数据库恢复到一致状态。

100套三级数据库上机试题,含有详细的分析方法和思路讲解!例如:1.调用函数rwdata(),从IN.dat文件中读取10组数据(m和k值),并嵌套调用primenum函数分别得出array[]数组。请编写函数primenum(int m,int k,int array[]),该函数的功能是:将紧靠m的k个素数存入数组array并在屏幕上显示。最后把结果输出到文件OUT.dat中。 例如,若输入3 9,则应输出5 7 11 13 17 19 23 29 31。 注意:部分程序已经给出。请勿改动主函数main()和输出数据函数rwdata()的内容。 #include <conio.h> #include <stdio.h> void rwdata(); void primenum(int m, int k, int array[]) { } main() { int m, n, array[1000]; printf("\nPlease enter two integers:"); scanf("%d%d", &m, &n); primenum(m, n, array); for (m=0; m<n; m++) printf("%d ", array[m]); printf("\n"); rwdata(); } void rwdata() { int m, n, array[1000], i; FILE *readfile, *writefile; readfile = fopen("in.dat", "r"); writefile = fopen("out.dat", "w"); for (i=0; i<10; i++) { fscanf(readfile, "%d %d", &m, &n); primenum(m, n, array); for (m=0; m<n; m++) fprintf(writefile, "%d ", array[m]); fprintf(writefile, "\n"); } fclose(readfile); fclose(writefile); } 【知识点播】素数的定义:如果一个数的正因子只有1和这个数本身,那么这个数就是素数。 【题目分析】分析题目可知,题中需要解决的问题就是Primenum函数的功能问题(rwdata函数功能题中已经给出),而Primenum函数的功能是求在指定数m之后的k个素数,因此本题的关键在于如何判断一个数是素数,之后就可以通过一个for循环来求得在m之后的k个素数了。 【解题思路】根据素数的定义,本题采用的算法是:首先定义一个变量Value,并把m之后的数逐个赋值给该变量;然后用2~value/2数除value,如果value能被2~value/2之中的任何一个整数整除,则value不是素数,结束循环;如果value不能被2~value/2之间的任一整数整除,则退出循环,然后判断循环变量i是否大于value/2,如果大于,则value是素数,并将value值赋给array[n],然后n++;再判断n是否大于等于k,如果大于等于k,就完成了程序要求的功能,退出循环,否则value加1,根据以上算法继续进行。 【答案】 void primenum(int m, int k, int array[]) { int value = m+1; int half, n = 0, i; while(1) { half = value/2; for (i=2; i<=half; i++) if (value%i == 0) break; if (i > half) { array[n] = value; n++; } if (n >= k) break; value++; } } 【容错分析】判断一个数m(大于1)是否素数的简单的算法:枚举2到m/2之间的整数,看能否被m整除,如果能整除,就不是素数,否则是素数。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值